﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
// Copyright (C) 2021 kingerrobot
// 版权所有。 
//
// 文件名：IRcsEquipCrn
// 文件功能描述：
//
// 创建者：名字 (zzl)
// 时间：2021/12/15 8:53:22
//
// 修改人：
// 时间：
// 修改说明：
// 版本：V1.0.0
//----------------------------------------------------------------*/
#endregion
namespace KingerRobot.MexicoSailunWMS.SpiService;
internal interface IRcsEquipCrn
{
    /// <summary>
    /// 堆垛机信息
    /// </summary>
    /// <returns></returns>
    List<PORcsEquipCrn> GetRcsEquipCrn();
    /// <summary>
    /// 获取堆垛机
    /// </summary>
    /// <param name="fork"></param>
    /// <returns></returns>
    PORcsEquipCrn GetCrnForkByFork(long fork);
    /// <summary>
    /// 所有货叉是否异常信息
    /// </summary>
    /// <returns></returns>
    List<CrnForkInfo> GetCrnFork();

    /// <summary>
    /// 通过ID获取堆垛机
    /// </summary>
    /// <returns></returns>
    PORcsEquipCrn GetCrnForkById(long? id);

    /// <summary>
    /// 所有货叉是否可用信息【创建/可执行任务的、异常的 都为  false】
    /// </summary>
    /// <returns></returns>
    List<CrnForkInfo> GetUsableCrnFork(EnumTaskType enumTaskType);

    /// <summary>
    /// 设备
    /// </summary>
    /// <returns></returns>
    List<PORcsEquip> GetBRcsEquips();

    /// <summary>
    /// 通过仓库获取数量
    /// </summary>
    /// <returns></returns>
    List<PORcsEquipCrn> GetEquipCrnsByWarehouse(long warehouseId);
    /// <summary>
    /// 堆垛机出入库汇总
    /// </summary>
    /// <returns></returns>
    List<InOutCountBean> GetInOutCount(InOutCountParam param);

    /// <summary>
    /// 通过库区id获取大屏显示的堆垛机信息
    /// </summary>
    /// <param name="WarehouseId"></param>
    List<ScreenCrnBean> GetEquipCrnsByWarehouseId(long WarehouseId);
}

public class CrnForkInfo
{
    /// <summary>
    /// 堆垛机
    /// </summary>
    public long? CrnId { get; set; }
    /// <summary>
    /// 货叉
    /// </summary>
    public long? Fork { get; set; }
    /// <summary>
    /// true 可用；false 不可用
    /// </summary>
    public bool IsEnable { get; set; }
    ///// <summary>
    ///// true 异常；false 不异常
    ///// </summary>
    //public bool IsAbnormal { get; set; }
    /// <summary>
    /// 货叉序号
    /// </summary>
    public int Index { get; set; }
    /// <summary>
    /// 任务数量
    /// </summary>
    public int TaskCount { get; set; }
    /// <summary>
    /// 货叉所在区域
    /// </summary>
    public long? CrnArea1 { get; set; }
    /// <summary>
    /// 货叉所在区域
    /// </summary>
    public long? CrnArea2 { get; set; }
}

public record CrnForkGroup(long? CrnId, int Count);
